package com.mask.common.mq.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.HashMap;
import java.util.Map;

@Data
@ConfigurationProperties(prefix = "mask.mq")
public class RabbitMQProperties {
    /**
     * 是否启用
     */
    private boolean enabled = true;

    /**
     * 重试次数
     */
    private int retryCount = 3;

    /**
     * 交换机
     */
    private Map<String, Exchange> exchanges = new HashMap<>();

    /**
     * 队列
     */
    private Map<String, Queue> queues = new HashMap<>();

    @Data
    public static class Exchange {
        /**
         * 交换机名称
         */
        private String name;
        
        /**
         * 交换机类型
         */
        private String type = "direct";
        
        /**
         * 是否持久化
         */
        private boolean durable = true;
    }

    @Data
    public static class Queue {
        /**
         * 队列名称
         */
        private String name;
        
        /**
         * 是否持久化
         */
        private boolean durable = true;
        
        /**
         * 绑定的交换机
         */
        private String exchange;
        
        /**
         * 路由键
         */
        private String routingKey;
    }
}